package com.ssm.sport.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ssm.sport.entity.Cart;
import com.ssm.sport.vo.CartVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 购物车Mapper接口
 */
@Repository
public interface CartMapper extends BaseMapper<Cart> {
    
    /**
     * 获取购物车列表，包含商品信息
     * @param userId 用户ID
     * @return 购物车和商品的关联信息
     */
    List<Map<String, Object>> selectCartWithProductByUserId(@Param("userId") Integer userId);
    
    /**
     * 更新用户所有购物车项的选中状态
     * @param userId 用户ID
     * @param checked 选中状态(0或1)
     * @return 更新的行数
     */
    int updateCheckedByUserId(@Param("userId") Integer userId, @Param("checked") Integer checked);
    
    /**
     * 获取用户购物车中已选中的商品
     * @param userId 用户ID
     * @return 已选中的购物车商品列表
     */
    List<CartVO> selectCheckedCartsByUserId(@Param("userId") Integer userId);
} 